﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;

namespace Jemgine.Engine
{
    [AttributeUsage(AttributeTargets.Class)]
    public class CategoryAttribute : System.Attribute
    {
        public string Category;
        public CategoryAttribute(string _category)
        {
            Category = _category;
        }
    }

    [AttributeUsage(AttributeTargets.Class)]
    public class DescriptionAttribute : System.Attribute
    {
        public string Description;
        public DescriptionAttribute(string _desc)
        {
            Description = _desc;
        }
    }

    [AttributeUsage(AttributeTargets.Class)]
    public class ComponentAttribute : System.Attribute
    {
    }

    [AttributeUsage(AttributeTargets.Class)]
    public class NodeAttribute : System.Attribute
    {
    }

    public interface EditorStateInterface
    {
        string WorkingDirectory();
        Data.MapData ReadMap(String name);
    }

    [AttributeUsage(AttributeTargets.Class)]
    public class EditorInitializationAttribute : System.Attribute
    {
        public virtual void Initialize_NewItem(Object Element, EditorStateInterface ESI) { }
        public virtual void Initialize_EditorLoad(Object Element, EditorStateInterface ESI) { }
        public virtual void OnPropertyChange(Object Element, EditorStateInterface ESI) { }
    }

}
